Visual2000 · Статьи А.Колесова

Суперкомпьютеры. Что это? Зачем? Сколько? Как?

© Андрей Колесов, 2010
Авторский вариант.
В январе 2010 года я получил письмо с предложением написать статью для нового создваемого журнала "Суперкомпьютеры". Я написал и отправил. Статья вышла в несколько сокращенном и отредактированном виде в первом номере журнала в апреле 2010 (с. 10-15). Здесь приведен исходный авторский вариант.


Тема суперкомпьютеров присутствует...

Тема суперкомпьютеров присутствует в общей компьютерно-информационной тематике уже несколько десятилетий и пользуется неизменным интересом со стороны не только ИТ-специалистов, но и – возможно даже еще в большей степени – людей не имеющих отношения к ИТ вовсе (впрочем, таких с каждый годом становится все меньше и меньше). Это вполне понятно – сама приставка "сверх" говорит, что речь идет о чем-то выдающемся, неординарном. При этом в случае с компьютерами "супер" играет не только имиджевую роль, но отражает очень важный содержательный момент: в значительной степени оно указывает на перспективы развития вычислительной техники – то, что еще 20-30 лет назад было "супер" в количестве единиц штук в мире, сегодня помещается в портфелях сотен миллионов школьников…

В нашей стране резкий всплеск интереса к вопросам о суперкомьютерах обозначился летом прошлого года, после того, как в конце июля на заседании Совета безопасности России президент Дмитрий Медведев заявил о важности этих средств для страны и о намерении инвестировать в их производство. Позволю себе процитировать некоторые высказывания первого лица России:

И еще одно высказывание руководителя Минкомсвязи Игоря Щеголева: "до массового внедрения суперкомпьютеров пока еще далеко".

Я привел эти цитаты потому, что в них, на самом деле, отражены очень важные вопросы. Ответы, на которые являются совсем не очевидными. Более того, ответы эти – как мне кажется – до сих пор не раскрыты до сих пор ни на "высоком" уровне, ни в среде ИТ-профессионалов.

Я тоже не знаю на них однозначных ответов, но в поисках истины хотелось бы начать с того, что сформулировать важные, на мой взгляд, вопросы по теме в более развернутом виде.

В начало статьи

Что такое суперкомпьютер?

Мне не удалось найти однозначной формулировки, и Википедия подтверждает, что вопрос это не так прост, как может показаться. Там говорится, что определение не раз было предметом многочисленных споров и дискуссий, и что примечательно – итогового результата до сих пор нет. Поэтому в Википедеи приведена формулировка, с которой трудно несогласиться:

"Суперкомпьютер — вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих компьютеров"

Но все же с ее помощью очень сложно определить: какое же именно устройство можно отнести к категории "супер".

Тут нужно вспомнить, что само понятие "суперкомпьютер" появилось в середине 60х годов прошлого века. По сути все компьютеры, созданные в течение первых 20 лет после появления ENIAC в 1946 году, относились в "супер" с сравнении с "большинством" используемых тогда вычислительных средств. Но в 60-х компьютеров стало уже довольно много, они стали различаться по назначению и мощности, поэтому возникла необходимость какой-то классификации.

Классификаций было много по разным признакам, но одной из основных в 70-е годы была такая: мини- и микроЭВМ, производительные ЭВМ общего назначения и суперЭВМ. Не хотелось бы сейчас вдаваться в детали и споры, но, мне кажется, что в первом приближении и сегодня такая категоризации вполне приемлема, в немного уточненном виде:

Сразу отмечу в такой формулировке за основу взято назначение устройства, а не ее технические характеристики (я считаю, что архитектура и техническая реализация – это уже вторично). Но все же наверное, стоит напомнить еще некоторые определения.

Но какое бы определение мы не выбрали, в целом представляется, что задача "массового внедрения суперкомпьютеров", о которой говорил в приведенной выше цитате говорил министр, представляется в принципе недостижимой. Все же эти устройства никак не относятся к категрии товаров широкого потребления.

Впрочем, в последнее время стало использоваться еще и понятие "персональный суперкомпьютер" – по сути своей ПК с использованием в качестве вычислителей графических процессоров (например, архитектуры CUDA), что позволяет сейчас получать быстродействие до 40 терафлопс. Может быть, министр имел их в виду?

В начало статьи

Для чего они нужны?

Все же если мы что-то собираемся делать, то начинать нужно с ответа на вопрос "зачем?", а уже потом – "как?". Из частных публичных, но все же очень фрагментарных, упоминаний о суперкомпьютерах понять "зачем" довольно сложно.

Простой ретроспективный анализ – где и зачем использовались такие средств – однозначно говорит, что речь идет о решении сложных математических вычислительных задач в рамках фундаментальных исследований и реализации проектов национального (или даже международного масштаба). Расшифровка секретных кодов и баллистические расчеты – вот основное применение вычислителей в время Второй Мировой войны. Первые прообразы современных компьютеров создавались (и у них и у нас) в рамках ядерных проектов. Наиболее известные советские суперкомпьютеры "Эльбрусы" делались для реализации проторакетной обороны страны в 70-80 годы… Можно еще сказать про геофизические исследования, прогнозирование погоды, расшифровку геному человека… Напомнить о том, что соглашения о запрещении ядерных испытаний были достигнуты во многом благодаря тому, что возможность математического моделирования взрывов позволила отказать о проведения "физических опытов".

Учитывая все это не очень понятно: чем в принципе вызван взрывооборазный интерес к проблематике суперкопьютеров как таковой? И зачем нужно упрекать бизнес-структуры в их неинтересованности в использовании технологий, которые им (структурам), в общем-то, не нужны чисто по определению?

Не очень проясняется ситуацию и сделанное тогда же, прошлым летом, высказывание президента России о том, что "У нас считанные единицы моделей обсчитываются на суперкомпьютерах, а остальные делаются на ватмане с применением известных прежних подходов". Ведь если речь идет о чем-то, что изображается на ватмане, то для автоматизации этого достаточно вполне стандартных (без приставки "супер") вычислительных средств. И кстати, в этом случае постановка проблемы уже довольно серьезно меняется: тогда нужно вести речь не о производстве компьютеров как таковых, а о том, почему имеющиеся (у нас, в мире) средства автоматизации и моделирования не используются в должной мере. Иначе мы может заразиться тяжелой формой механетис (см. врезку).

Так неопределенность целей и задач, прозвучавших в выступлениях первых лиц страны, позволили наблюдателям делать предположения (вспомнив про "Эльбрусы") типа – не собирается ли Россия начать новую масштабную программу созданию современного поколения ПРО? Но из обрывочных сведений, просочившихся в печать, наиболее вероятной версией создание суперкомпьютера для ядерного центра в Сарово (Арзамас-16).

В начало статьи

Что значить – производство компьютеров?

Не менее загадочно звучит и постановка задачи "производства суперкомпьютеров". Что тут имеется в виду?

Тут опять же стоит напомнить, что в советские времена в 70-е годы создание "Эльбрусов" выполнялось в режиме "замкнутого цикла" полностью самодостаточного проекта: проектирование и производство микроэлектронной базы, архитектуры, производство всего остального железа, разработка всего ПО (системного и прикладного), внедрение у заказчика, эксплутация… В общем, всего, правда, нужно сказать, что многие вещи (та же микроэлектроника, архитектура, ПО) делались или по западным аналогам или, по крайней мере, с учетом их опыта. При этом нужно сказать, что и в США, при создании тех же Cray использовался тогда во многом такой же "самодостаточный" подход.

Вполне очевидно, что сейчас развитие вычислительной техники (и суперкомпьютеры в этом не исключение) доминирует вариант отраслевого разделения труда и максимального использования стандартных технологий. Тут мы волей-неволей все же возвращаемся к вопросу "что такое суперкопьютеры", в том числе, о каких архитектурных подходах к их созданию, может идти речь. Сейчас не хотелось бы углубляться в эту непростую тему, но все нужно сказать, что в последние годы доминирует вариант параллельно соединенных скалярных стандартных процессоров. Общеотраслевые технологии применяются и в упомянутых выше "персональных" суперкомпьютеров на базе графических процессоров.

Что же мы, в России, хотим делать? В чем именно будет заключаться "отечественная" добавленная стоимость в деле производства суперкомпьютеров? Новые архитектурные идеи, создание средств разработки, прикладного ПО,…? Интересен и такой вопросы: мы собираемся "производить" суперкомпьютеры только для собственного потребления про госзаказам, создавать какое-то серийной производство (что трудно себе представить) или создавать что-то, что может быть нашим вкладом в международную кооперацию в этой сфере? К сожалению, пока из немногочисленных обсуждений в блогосфере по этому поводу пока создается впечатление, что наш вклад заключается в создании физической инфраструктуры под конкретные проекты – электроснабжения, теплоотвода, вентиляции и т.д.

В начало статьи

Догнать и перегнать…

Наверное, все же, прежде, чем стоить планы по развитию суперкомпьютерного дела в стране, было интересно прояснить ситуацию с текущим состоянием дел. А про это информации тоже не очень много.

Из летних высказываний Игоря Щеголева известно, что в стране на тот момент действовало 17 суперкомпьютеров. Говорилось о намерениях объединения их в единую Grid –систему, з апуска осенью (уже прошедшей) в МГУ суперкомпьютеры (во множественном числе) производительностью 500 терафлоп, также о внедрении маломощных (?) компьютеров в коммерческий сектор. На Совбезе речь шла и о долгосрочных планах в этой сфере: разработке ПО, подготовке кадров, создания целой линейки (!) суперкомпьютеров.

Планы – это дело хорошее? Но как и для чего используются суперкомпьютеры в России сегодня? Простой вопрос: насколько загружены имеющиеся сегодня мощности? Официальные данные об этом не попадаются, но из кулуарных разговоров с людьми, которые имеют доступ к такой статистике, можно сделать вывод, что коэффициент полезного действия того, что есть, не очень высок.

В принципе формально задействовать суперкомпьютеры нетрудно – например, решая различные абстрактные тестовые задачи по обращению огромных матриц (чем и занимаются аспиранты, которым нужно просто защитить диссертации). Но только подобные операции имеют довольно малое отношение к решению практических задач. А ведь эффективность применения компьютеров определяется не коэффициентом загрузки процессоров, а числом решенных задач конечных пользователей. Типа "использование нового суперкомпьютер позволило сократить средства, на разведку одного месторождения нефти на 20%". Тогда и посчитать экономический эффект можно будет.

Вроде бы есть информационные ресурсы, на которых должна быть такая информация (например, www.supercomputers.ru), но никаких описаний реализации того или иного вычислительного проекта там найти не удается.

Собственно, эта проблема была обозначена все в той же летней речи Дмитрия Медведа на заседании Совета Безопасности: "насколько полно они будут загружены?". Но только начать было бы логично с того, что проанализировать, как они загружены сегодня.

Сложность тут заключается еще в том, что на самом деле реально задействоваться возможности суперкомпьютера – это совсем не так просто. Ведь основной эффект при их использовании достигается за счет распараллеливания вычислительных процессов, а возможности решения такой задачи (распараллеливания) автоматически с помощью сугубо программных средств – довольно ограничены, в том числе и при работе с моделями, описываемыми уравнениями математической физики.

Короче говоря, использование суперкомпьютеров требует очень серьезных инвестиций в развитие математического и программного обеспечения, о которых пока ничего не слышно.

В начало статьи